﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.catalogos;
using Microsoft.Reporting.WebForms;

namespace Presentacion.controlasistencia
{
    public partial class reporteTiempo : System.Web.UI.Page
    {
        catalogoCarrera _objCarrera = new catalogoCarrera();
        catalogoTiempo _objTiempo = new catalogoTiempo();
        catalogoPeriodo _objPeriodo = new catalogoPeriodo();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["admin"]!=null || Session["vicerrectorado"] != null)
            {
              if (!IsPostBack)
                {
                    var carreras = _objCarrera.obtenerTodasCarreras();
                    foreach (var item in carreras)
                    {
                        ddlCarreras.Items.Add(new ListItem(item.carrera,item.idCarrera.ToString()));
                    }
                    
                    var periodo = _objPeriodo.obtenerPeriodoxTOP();
                    
                    foreach (var item in periodo)
                    {
                        ddlPeriodo.Items.Add(new ListItem(item.nombre,item.idPeriodo.ToString()));
                    }
                }  
            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }
        #region Generar Reporte
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Session["admin"]!=null || Session["vicerrectorado"] != null)
            {
                int codCarrera = Convert.ToInt32(ddlCarreras.SelectedItem.Value);
                int idPeriodo = Convert.ToInt32(ddlPeriodo.SelectedItem.Value);
                #region agregar parametros
                ReportParameter[] parametros = new ReportParameter[2];
                try
                {
                    var resulCarrera = _objCarrera.obtenerCarreraxID(codCarrera).FirstOrDefault();
                    parametros[0] = new ReportParameter("carrera", resulCarrera.carrera);
                }
                catch (Exception)
                {

                    parametros[0] = new ReportParameter("carrera", "Error al cargar la carrera.");
                }
                try
                {
                    var resulPeriodo = _objPeriodo.obtenerPeriodo(idPeriodo).FirstOrDefault();
                    parametros[1] = new ReportParameter("periodo", resulPeriodo.nombre);
                }
                catch (Exception)
                {
                    parametros[1] = new ReportParameter("periodo", "Error al cargar el periodo.");
                }
                #endregion

                ReportViewer1.LocalReport.DataSources.Clear();
                ReportDataSource dataSourceTiempo = new ReportDataSource();

                dataSourceTiempo.Name = "dtsTiempo";
                dataSourceTiempo.Value = new catalogoTiempo().obtenerTiempoXCarrera(codCarrera, idPeriodo);

                ReportViewer1.LocalReport.DataSources.Add(dataSourceTiempo);

                ReportViewer1.LocalReport.ReportEmbeddedResource = "Presentacion.controlasistencia.reports.reporteTiempoCarrera.rdlc";
                ReportViewer1.LocalReport.ReportPath = "controlasistencia/reports/reporteTiempoCarrera.rdlc";

                ReportViewer1.LocalReport.SetParameters(parametros);
                var parame = ReportViewer1.LocalReport.GetParameters();
                ReportViewer1.Visible = true;
                ReportViewer1.DataBind();
                ReportViewer1.LocalReport.Refresh();
              
                
            }
            else
            {
                Server.Transfer("404.aspx");
            }
        }
        #endregion
        
    }
}